#include "fuente.h"
#include <QTime>
#include <QVector>
#include <qglobal.h>
#include "cliente.h"
#include "cajero.h"

Fuente::Fuente(VentanaSimulacion* ventanaSimulacion) :
        ventanaSimulacion(ventanaSimulacion) {
}


void Fuente::run() {
    QVector<Cajero*> cajeros = ventanaSimulacion->getCajeros();
    while(true) {
        qsrand((uint)QTime::currentTime().msec());
        Cliente* cliente = new Cliente;
        msleep(qrand() % 500 + 250);
        cliente->setCajero(cajeros[qrand() % cajeros.size()]->getId());
        cliente->setOperacion(qrand() % 4 + 1);
        cliente->setImagen(qrand() % 13);
        cliente->setVentanaSimulacion(ventanaSimulacion);
        switch (cliente->getOperacion()) {
            case 1: cliente->setMonto(qrand() % 551 + 50);
            break;
            case 2: case 4: cliente->setMonto(qrand() % 996 + 5);
            break;
            case 3: cliente->setMonto(0);
            break;
        }
        cliente->start();
    }
}

void Fuente::setVentanaSimulacion(VentanaSimulacion* ventanaSimulacion) {
    this->ventanaSimulacion = ventanaSimulacion;
}
